tracker和metrics
ROLL 框架支持多种实验track工具,帮助您监控和分析训练过程。本文档将详细介绍如何配置和使用这些跟踪器。
支持的trackers
ROLL 框架目前支持以下几种trackers:
- TensorBoard - Google 开发的可视化工具
- Weights & Biases (WandB) - 功能强大的机器学习实验跟踪平台
- SwanLab - 新一代 AI 实验跟踪工具
- Stdout - 直接输出到标准输出
配置跟踪器
在 YAML 配置文件中,通过 track_with 和 tracker_kwargs 参数来配置跟踪器:
# 使用 TensorBoard
track_with: tensorboard
tracker_kwargs:
log_dir: /path/to/tensorboard/logs
# 使用 Weights & Biases
track_with: wandb
tracker_kwargs:
api_key: your_wandb_api_key
project: your_project_name
name: experiment_name
notes: "实验描述"
tags:
- tag1
- tag2
# 使用 SwanLab
track_with: swanlab
tracker_kwargs:
login_kwargs:
api_key: your_swanlab_api_key
project: your_project_name
logdir: /path/to/swanlab/logs
experiment_name: experiment_name
tags:
- tag1
- tag2
# 使用 Stdout
track_with: stdout
SwanLab 使用详解
配置 SwanLab
要在 ROLL 中使用 SwanLab,请按以下方式配置:
track_with: swanlab
tracker_kwargs:
login_kwargs:
api_key: your_api_key # 您的 SwanLab API 密钥
project: roll-experiments # 项目名称
logdir: ./swanlog # 日志存储目录
experiment_name: ${exp_name} # 实验名称,通常使用 exp_name 变量
tags: # 实验标签
- roll
- rl
- experiment
获取 SwanLab API 密钥
- 访问 SwanLab 官网
- 注册或登录您的账户
- 进入用户设置页面
- 找到 API 密钥并复制
指标监控
ROLL 框架会自动记录以下类型的指标:
算法效果指标
验证阶段
- val/score/mean: 验证阶段,每个 episode 的平均分数。反映模型在未见过环境上的平均表现。
- val/score/max / val/score/min: 验证阶段,每个 episode 的最高分数 / 最低分数。
价值相关
- critic/lr: 价值函数(Critic)的学习率。学习率是优化器更新模型参数的步长。
- critic/loss: 价值网络预测值与真实回报之间的损失。
- critic/value: 数据收集或训练开始时,旧策略的价值网络对批次中状态的预测值均值。这些值通常在计算优势函数时作为基准。
- critic/vpred: 当前正在优化中的价值网络对批次中状态的预测值均值。该值会随着训练迭代而更新。
- critic/clipfrac: 价值函数是否使用了裁剪(value_clip)以及裁剪生效的比例。
- critic/error: 价值网络预测值与真实回报之间的均方误差。
奖励相关
- critic/score/mean: 环境原始奖励的均值。
- critic/score/max / critic/score/min: 环境原始奖励的最大值 / 最小值。
- critic/rewards/mean: 经过归一化/裁剪的奖励均值。
- critic/rewards/max / critic/rewards/min: 经过归一化/裁剪的奖励的最大值 / 最小值。
- critic/advantages/mean: 优势(Advantages)的均值。反映了在给定状态下采取某个行动相对于平均水平能带来多少额外奖励。
- critic/advantages/max / critic/advantages/min: 优势(Advantages)的最大值 / 最小值。
- critic/returns/mean: 回报(Returns)的均值。期望的累计奖励。
- critic/returns/max / critic/returns/min: 回报的最大值 / 最小值。
- critic/values/mean: 价值函数(Value Function)估计的均值。反映了模型对某个状态未来总奖励的估计。
- critic/values/max / critic/values/min: 价值函数的最 大值 / 最小值。
- tokens/response_length/mean: 生成响应的平均长度。
- tokens/response_length/max / tokens/response_length/min: 生成响应的最大长度 / 最小长度。
- tokens/prompt_length/mean: 提示的平均长度。
- tokens/prompt_length/max / tokens/prompt_length/min: 提示的最大长度 / 最小长度。
策略相关
- actor/lr: 当前策略网络(Actor)的学习率。学习率是优化器更新模型参数的步长。
- actor/ppo_ratio_high_clipfrac: PPO 策略优化时的高裁剪比例。
- actor/ppo_ratio_low_clipfrac: PPO 策略优化时的低裁剪比例。
- actor/ppo_ratio_clipfrac: PPO 策略优化时的裁剪比例。
- actor/ratio_mean: 策略网络(Actor)的平均 ratio (新旧策略对数概率之比的指数) 。
- actor/ratio_max / actor/ratio_min: 策略网络(Actor)的 ratio 的最大值 / 最小值。
- actor/clipfrac: 策略网络(Actor)的裁剪比例。
- actor/kl_loss: 当前策略与参考策略之间的KL散度惩罚项。用于防止策略偏离原始模型太远。
- actor/total_loss: 策略梯度损失、KL散度损失和熵损失(如果存在)的加权和。这是实际用于模型反向传播的损失。
- actor/approxkl: 当前策略与旧策略之间的近似KL散度。衡量每一步策略更新的步长。
- actor/policykl: 当前策略与旧策略之间的精确KL散度。